package com.hjr.leetcode.question100;

/**
 *28. 找出字符串中第一个匹配项的下标
 * 给你两个字符串 haystack 和 needle ，请你在 haystack 字符串中找出 needle 字符串的第一个匹配项的下标（下标从 0 开始）。如果 needle 不是 haystack 的一部分，则返回  -1 。
 */
public class q28 {

    public static void main(String[] args) {
        System.out.println(strStr("mississippi", "issip"));
    }

    //一眼双指针啊 1ms 40mb
    public static int strStr(String haystack, String needle) {
        int l = 0, r = 0;
        int temp = -1;
        while (l < haystack.length() && r < needle.length()){
            if (haystack.charAt(l) == needle.charAt(r)){
                if (temp == -1){
                    temp = l;
                }
                l++;
                r++;
            }else {
                if (temp != -1){
                    l = temp + 1;
                }else {
                    l++;
                }
                temp = -1;
                r = 0;
            }
        }

        if (r == needle.length()){
            return temp;
        }

        return -1;
    }
}
